﻿using Newtonsoft.Json;
using System;

namespace synoexec.synologylib.DataType
{
    public class BackupTaskInfo
    {
        [JsonProperty("allow_manual_backup")]
        public bool AllowManualBackup { get; set; }
        [JsonProperty("backup_external")]
        public bool BackupExternal { get; set; }
        [JsonProperty("backup_type")]
        public int BackupType { get; set; }
        [JsonProperty("bandwidth")]
        public int BandWidth { get; set; }
        [JsonProperty("connection_timeout")]
        public int ConnectionTimeout { get; set; }
        [JsonProperty("device_count")]
        public int DeviceCount { get; set; }
        [JsonProperty("devices")]
        public BackupDeviceInfo[] Devices { get; set; }
        [JsonProperty("last_result")]
        public BackupResult LastResult { get; set; }
        [JsonProperty("next_trigger_time")]
        public long NextTriggerTime { get; set; }
        [JsonProperty("repo_dir")]
        public string RepoDir { get; set; }
        [JsonProperty("sched_id")]
        public int SchedId { get; set; }
        [JsonProperty("sched_modify_time")]
        public long SchedModifyTime { get; set; }
        [JsonProperty("share_compressed")]
        public bool ShareCompressed { get; set; }
        [JsonProperty("share_name")]
        public string ShareName { get; set; }
        [JsonProperty("source_type")]
        public int SourceType { get; set; }
        [JsonProperty("storage_id")]
        public int StorageId { get; set; }
        [JsonProperty("target_dir")]
        public string TargetDir { get; set; }
        [JsonProperty("task_id")]
        public int TaskId { get; set; }
        [JsonProperty("task_name")]
        public string TaskName { get; set; }
        [JsonProperty("unikey")]
        public string UniKey { get; set; }
        [JsonProperty("view_type")]
        public string ViewType { get; set; }
        [JsonProperty("version_count")]
        public long VersionCount { get; set; }
        [JsonProperty("versions")]
        public BackupVersionInfo[] Versions { get; set; }
    }
}
